使用SteamVR sdk2.0+版本时,如何在Unity中适配Tracker

自从SteamVR plugin for Unity(后面简称steamVR sdk)升级到2.0+版本之后,就引入了 SteamVR Input 输入系统,目的是将具体的输入设备与游戏逻辑分开,让开发者可以专心根据功能来开发,而不需要关注设备的具体按键;

但这个升级也改变了很多steamVR sdk原本的脚本,使得部分之前用 steamVR sdk 1.0+版本开发的同学一下子适应不过来,下面我主要讲讲使用 steamVR sdk2.0+版本时,要如何在Unity中适配 Tracker;

本文基于Unity2018.4.12f1版本以及SteamVR Rumtime 1.8.19版本;

A.在Unity端的操作

  1. 通过Unity的AssetStore获取最新版本的SteamVR sdk;

注意:如果导入新版的SDK之后,报了下面这个错:
[SteamVR] Error during OpenVR Init: Init_InterfaceNotFound
说明请求的接口不存在,steamVr runtime目前的版本不兼容sdk的接口,需要更新 runtime,这在下面对SteamVR Runtime的设置中会进行;

  1. 在Unity菜单栏下选中Window->SteamVR Input,在弹出的窗口选择 Yes;
  2. 在SteamVR Input窗口,保持默认就好,然后选择 Save and generate;
  3. 此时会发现Project面板多了下面三个文件夹;
  4. 将 [CameraRig] 下的两个 Controller 上的 Pose Action 设置成 \actions\default\in\Pose, 然后把 InputSource 分别设置成 LeftHand 和 RightHand;

B.对SteamVR Runtime的设置

  1. 打开Steam并登陆账号(不登陆的话后面有些操作进行不了),然后更新SteamVR runtime的版本;
  2. 通过Steam上的VR打开SteamVR runtime;
  3. 通过 Steam VR runtime 进入“控制器输入按键设置”窗口;
  4. 选择Unity中正在开发的应用程序;
  5. 将当前控制器设置成 Vive Tracker in Hand;
  6. 点击管理定位器,将对应的 Tracker 设置成手持,并分别设置成左右手
  7. 如果当前按键设置为空,点击创建新按键设置;
  8. 在default中勾选镜像模式,然后选择编辑动作姿势
  9. 将 左手Origin 设置成Pose
  10. 最后保存个人按键设置;

注意: 如果点了保存之后,一直显示在上传或者没有反应,可以尝试重启下SteamVR Runtime;

按步骤设置完之后,应该就可以在Unity中运行steamVR sdk的Demo时看到我们的Tracker了,匹配Tracker的基本操作我就不再详述了,enjoy your game;